#ifndef  _GRAMMAR2_H_
#define  _GRAMMAR2_H_


/* ----- 宏定义 ------------------------------------------------------------- */
#define  GR_ERROR_GOOD          (0)     // 处理正常。
#define  GR_ERROR_FILEND        (1)     // 遇到了文件结束，可以正常结束。
#define  GR_ERROR_WARNING       (2)     // 有警告，很可能是错误，但仍可产生代码。
#define  GR_ERROR_ERROR         (3)     // 可以继续，但不必产生代码了。
#define  GR_ERROR_FAIL          (4)     // 严重失败，不可继续。


// 文法分析的上下文。
typedef struct
{
    // 下层结构的上下文， 下层就是 词法 分析部分。
    tetra  inctx;         // 输入上下文。
    tetra  lectx;         // 使用的词法上下文。
    tetra  stctx;         // 存储上下文。


    // 第二个层次需要的信息。
    tetra  section_id;
    tetra  section_ofs;
    tetra  section_type;

    // 行数列数信息..
    tetra  lineno;
    tetra  columno;
    
} gr_context;


#endif



